set the buttonNum of me to the spriteNum of me - (the firstSprite of me - 1)
setPrevChoice(me)
end
on setPrevChoice me
set chosenOne to getAt(the userdata of gReviewData, the questionNum of me)
if chosenOne = the buttonNum of me then
sendSprite(the spriteNum of me, #Toggle)
end if
end
on mouseDown me
set chosenOne to getAt(the userdata of gReviewData, the questionNum of me)
if chosenOne = the buttonNum of me then
setAt(the userdata of gReviewData, the questionNum of me, 0)
else
if chosenOne <> 0 then
unclickAnother(me, chosenOne)
end if
setAt(the userdata of gReviewData, the questionNum of me, the buttonNum of me)
end if
end
on unclickAnother me, prevChoice
set otherSprite to the firstSprite of me + (prevChoice - 1)
sendSprite(otherSprite, #Toggle)
end
on getPropertyDescriptionList
set p_list to [#questionNum: [#comment: "Question number for this button:", #format: #integer, #range: [#min: 1, #max: 25], #default: 1], #firstSprite: [#comment: "First sprite of series:", #format: #integer, #range: [#min: 10, #max: 20], #default: 10]]
return p_list
end
on getBehaviorDescription
return "Each sprite will know its position in a group based on its sprite number." & RETURN & "It will also know what question it is applied to." & RETURN & "From these properties we can keep score in a global." & RETURN & "• Question number - choose from the range." & RETURN & "• First sprite - so the first sprite in the series gets a 1, etc." & RETURN & "NOTES:" & RETURN & "Uses global variable to keep track of button position, ON or OFF."